﻿/**
 * @file httpd.h
 * @author septem (jsm920@outlook.com)
 * @brief 一个简单的 httpd 服务程序，使用C语言书写，要求小巧、高效、跨平台、通过gcc/MS-VC编译。
 * @version 0.0.1
 * @date 2024-10-06
 * 
 * @copyright Copyright (c) 2024
 * 
 */
#ifndef _HEAD_HTTPD_
#define _HEAD_HTTPD_
#if defined(_WIN32) && defined(_MSC_VER)
// #pragma execution_character_set("utf-8")
#define WIN32_LEAN_AND_MEAN // 预处理器宏定义，它告诉编译器仅包含Windows SDK中最常用的函数和数据类型，从而减小编译时间和生成的可执行文件大小。
#include <stdio.h>
#elif defined(__linux__)
#include <stdio.h>
#endif
#include "cfg.h"
#include "mio.h"
#include "mio.h"
// IPv6格式：gggg.gggg.gggg.ssss.xxxx.xxxx.xxxx.xxxx ， g:Global Routing Prefix(n<=48bits);s:Students ID(64 - nbits);x:Host ID

#define HTTPD_IPv4 1
#define HTTPD_IPv6 2 
#define HTTPD_IPv4_SSL 3
#define HTTPD_IPv6_SSL 4

typedef struct httpdroute_t // 相当于
{
    int type;
}httpdroute_t;

/**
 * @brief httpd通道类型
 * 
 */
typedef struct httpdconf_t
{
    int type;
    char* IP;
    unsigned short Port;
    char** Root;
    char** Index;
    httpdroute_t * Route;
    int cntRoot;
    int cntIndex;
    int cntRoute;
}httpdconf_t;

/**
 * @brief httpd_t 的配置结构
 * 
 */
typedef struct httpd_t
{
    mio_t* pmio;

}httpd_t;

#endif // end of define _HEAD_HTTPD_


